Software Metrics
   HOME

TheInfoList



OR:

In
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
and
development Development or developing may refer to: Arts *Development hell, when a project is stuck in development *Filmmaking, development phase, including finance and budgeting *Development (music), the process thematic material is reshaped * Photograph ...
, a software metric is a standard of measure of a degree to which a software system or process possesses some property. Even if a metric is not a measurement (metrics are functions, while measurements are the numbers obtained by the application of metrics), often the two terms are used as synonyms. Since quantitative measurements are essential in all sciences, there is a continuous effort by
computer science Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to Applied science, practical discipli ...
practitioners and theoreticians to bring similar approaches to software development. The goal is obtaining objective, reproducible and quantifiable measurements, which may have numerous valuable applications in schedule and budget planning, cost estimation, quality assurance, testing, software
debugging In computer programming and software development, debugging is the process of finding and resolving '' bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems. Debugging tactics can involve in ...
, software performance optimization, and optimal personnel task assignments.


Common software measurements

Common software measurements include: *
ABC Software Metric The ABC software metric was introduced by Jerry Fitzpatrick in 1997 to overcome the drawbacks of the LOC. The metric defines an ABC score as a triplet of values that represent the size of a set of source code statements. An ABC score is calculated ...
*
Balanced scorecard A balanced scorecard is a strategy performance management tool – a well structured report, that can be used by managers to keep track of the execution of activities by the staff within their control and to monitor the consequences arising from t ...
* Bugs per line of code *
Code coverage In computer science, test coverage is a percentage measure of the degree to which the source code of a program is executed when a particular test suite is run. A program with high test coverage has more of its source code executed during testing, ...
* Cohesion * Comment density * Connascent software components * Constructive Cost Model *
Coupling A coupling is a device used to connect two shafts together at their ends for the purpose of transmitting power. The primary purpose of couplings is to join two pieces of rotating equipment while permitting some degree of misalignment or end mov ...
*
Cyclomatic complexity Cyclomatic complexity is a software metric used to indicate the complexity of a program. It is a quantitative measure of the number of linearly independent paths through a program's source code. It was developed by Thomas J. McCabe, Sr. in 1976. ...
(McCabe's complexity) *Cyclomatic complexity density * Defect density - defects found in a component * Defect potential - expected number of defects in a particular component * Defect removal rate *
DSQI DSQI (design structure quality index) is an architectural design metric Metric or metrical may refer to: * Metric system, an internationally adopted decimal system of measurement * An adjective indicating relation to measurement in general, or a ...
(design structure quality index) * Function Points and Automated Function Points, an
Object Management Group The Object Management Group (OMG) is a computer industry standardization, standards consortium. OMG Task Forces develop enterprise integration standards for a range of technologies. Business activities The goal of the OMG was a common portabl ...
standard * Halstead Complexity *
Instruction path length In computer performance, the instruction path length is the number of machine code instructions required to execute a section of a computer program. The total path length for the entire program could be deemed a measure of the algorithm's performa ...
* Maintainability index * Number of lines of code * Program execution time * Program load time * Program size (binary) *
Weighted Micro Function Points Weighted Micro Function Points (WMFP) is a modern software sizing algorithm which is a successor to solid ancestor scientific methods as COCOMO, COSYSMO, maintainability index, cyclomatic complexity, function points, and Halstead complexity. It ...
*
CISQ The Consortium for IT Software Quality (CISQ) is an IT industry group comprising IT executives from the Global 2000, systems integrators, outsourced service providers, and software technology vendors committed to making improvements in the quali ...
automated quality characteristics measures *
Cycle time (software) In software engineering, cycle time is a software metric which estimates development speed in agile software projects. The cycle time measures how long it takes to process a given job - whether it's a client request, an order,  or a defined pro ...
*
First pass yield First-pass yield (FPY), also known as throughput yield (TPY), is defined as the number of units coming out of a process divided by the number of units going into that process over a specified period of time. Example Consider the following: You h ...
*Corrective Commit Probability


Limitations

As software development is a complex process, with high variance on both methodologies and objectives, it is difficult to define or measure software qualities and quantities and to determine a valid and concurrent measurement metric, especially when making such a prediction prior to the detail design. Another source of difficulty and debate is in determining which metrics matter, and what they mean. The practical utility of software measurements has therefore been limited to the following domains: *
Scheduling A schedule or a timetable, as a basic time-management tool, consists of a list of times at which possible task (project management), tasks, events, or actions are intended to take place, or of a sequence of events in the chronological order ...
*
Software sizing Software sizing or Software size estimation is an activity in software engineering that is used to determine or estimate the size of a software application or component in order to be able to implement other software project management activities ...
* Programming complexity *
Software development effort estimation In software development, effort estimation is the process of predicting the most realistic amount of effort (expressed in terms of person-hours or money) required to develop or maintain software based on incomplete, uncertain and noisy input. Effort ...
* Software quality A specific measurement may target one or more of the above aspects, or the balance between them, for example as an indicator of team motivation or project performance. Additionally metrics vary between static and dynamic program code, as well as for object oriented software (systems).


Acceptance and public opinion

Some software development practitioners point out that simplistic measurements can cause more harm than good. Others have noted that metrics have become an integral part of the software development process. Impact of measurement on programmer psychology have raised concerns for harmful effects to performance due to stress, performance anxiety, and attempts to cheat the metrics, while others find it to have positive impact on developers value towards their own work, and prevent them being undervalued. Some argue that the definition of many measurement methodologies are imprecise, and consequently it is often unclear how tools for computing them arrive at a particular result, while others argue that imperfect quantification is better than none (“You can’t control what you can't measure.”). Evidence shows that software metrics are being widely used by government agencies, the US military, NASA, IT consultants, academic institutions, and commercial and academic development estimation software.


Further reading

* J. Smith, ''Introduction to Linear Programming'', Acme Press, 2010. An introductory text. * Reijo M.Savola, ''Quality of security metrics and measurements, Computers & Security, Volume 37, September 2013, Pages 78-90.''


See also

* Goal Question-Metric *
List of tools for static code analysis This is a list of notable tools for static program analysis (program analysis is a synonym for code analysis). Static code analysis tools Languages Ada * * * * * * * * * * * C, C++ * * * * * * * * * * * * ...
* Orthogonal Defect Classification *
Software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
*
Software package metrics Various software package metrics are used in modular programming. They have been mentioned by Robert Cecil Martin in his 2002 book ''Agile software development: principles, patterns, and practices''. The term software package here refers to a gr ...


References


External links


Software Metrics
(SQA.net)
Software Engineering Metrics: What do they measure and how do we knowNASA Standard NASA-STD-8739.8 (Software Assurance and Software Safety Standard)HIS Source Code Metrics
(''outdated but for reference''; related see AUTOSAR)
HIS Source Code Metrics version 1.3.1 01.04.2008
(''outdated but for reference''; related see AUTOSAR)
A framework for source code metricsNASA.govSonarQube Metric DefinitionsMetrics of Object Oriented Software
(2010) {{DEFAULTSORT:Software Metric * Metrics